package hash;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @Author Stringzhua
 * @Date 2024/4/7 22:35
 * description:SHA-1也是一种哈希算法，它的输出是160 bits，即20字节。
 * SHA-1是由美国国家安全局开发的，SHA算法实际上是一个系列，包括SHA-0（已废弃）、SHA-1、SHA-256、SHA-512等。
 * 在Java中使用SHA-1，和MD5完全一样，只需要把算法名称改为"SHA-1"：
 */

public class main {
    public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
        // 创建一个MessageDigest实例:
        MessageDigest md = MessageDigest.getInstance("SHA-1");

        // 反复调用update输入数据:
        md.update("Hello".getBytes("UTF-8"));
        md.update("World".getBytes("UTF-8"));

        // 20 bytes: db8ac1c259eb89d4a131b253bacfca5f319d54f2
        byte[] results = md.digest();

        StringBuilder sb = new StringBuilder();
        for(byte bite : results) {
            sb.append(String.format("%02x", bite));
        }

        System.out.println(sb.toString());//db8ac1c259eb89d4a131b253bacfca5f319d54f2
    }
}
